package kiosk;

/**
 * Importeringer
 */
import java.util.ArrayList;
import java.io.Serializable;

/**
 * Klasse: SalgsListe
 * @author  RK
 * @version 1.0
 * -------------------------
 * Sist endret: 22 Mars 2010
 */
public class SalgsListe implements Serializable {

    private ArrayList<Salg> salgsListe;

    public SalgsListe()
    {
        this.salgsListe = new ArrayList<Salg>();
    }

    /**
     * addSalg
     * ------------------------------------------
     * Legg til et salg om salgID ikke finnes allerede
     * 
     * @param s
     */
    public void addSalg(int salgID, double sum, double tjent, String dato, ProduktListe prod)
    {
        // Sjekk om salg eksisterer allerede
        if (!this.erAllerede(salgID))
        {
            Salg s = new Salg(salgID, sum, tjent, dato, prod);
            this.salgsListe.add(s);
        }
    }

    /**
     * getSalg
     * ------------------------------------------
     * Hent ut alle salg i arkivet
     * 
     * @return
     */
    public ArrayList getSalg()
    {
        return this.salgsListe;
    }

    /**
     * getAntallSalg
     * --------------------------------------
     * Hent ut antall produkter i arkivet
     * @return
     */
    public int getAntallSalg()
    {
        return this.salgsListe.size();
    }

    /**
     * finnIndex
     * -----------------------------------------
     * Finn indexen til et salg basert på salgID
     *
     * @param salgID
     * @return int
     */
    private int finnIndex(int salgID)
    {
        // Sjekk om arkivet er tomt
        if (this.salgsListe.isEmpty())
        {
            return -1;
        }
        else
        {
            for (int i = 0; i < this.salgsListe.size(); i++)
            {
                Salg p = (Salg) this.salgsListe.get(i);
                if (p.getSalgID() == salgID)
                {
                    return i;
                }
            }
            return -1;
        }
    }

    public Salg getEtSalg(int salgID)
    {
        // Sjekk om arkivet er tomt
        if (!this.salgsListe.isEmpty())
        {
            // Sjekk om produktet finnes i arkivet
            if (this.erAllerede(salgID))
            {
                // Hent indexen til produktet
                int index = this.finnIndex(salgID);

                // Returner produktet
                return (Salg) this.salgsListe.get(index);
            }
            else
            {
                return null;
            }
        }
        else
        {
            return null;
        }
    }

    /**
     * erAllerede
     * ------------------------------------------
     * Sjekk om ett salg eksisterer allerede basert på salgID
     *
     * @param  salgID
     * @return boolean
     */
    private boolean erAllerede(int salgID)
    {
        // Sjekk om arkivet er tomt
        if (this.salgsListe.isEmpty())
        {
            return false;
        }
        else
        {
            for (int i = 0; i < this.salgsListe.size(); i++)
            {
                Salg p = (Salg) this.salgsListe.get(i);
                if (p.getSalgID() == salgID)
                {
                    return true;
                }
            }
            return false;
        }
    }
}
